package com.zuipin.service;

import com.alibaba.rocketmq.common.protocol.heartbeat.MessageModel;
import com.zuipin.entity.RocketMqErrorInfo;
import com.zuipin.entity.RocketMqInfo;

public interface IRocketMQService {
	
	/**
	 * 保存错误信息
	 * 
	 * @Title: saveError
	 * @author: xujinding
	 * @date: 2017年6月8日下午4:01:16
	 * @param id
	 * @param message
	 * @return: void
	 * @throws
	 */
	public RocketMqErrorInfo saveError(Long infoId, String errorInfo);
	
	/**
	 * 保存发送信息
	 * 
	 * @Title: saveError
	 * @author: xujinding
	 * @date: 2017年6月8日下午4:01:16
	 * @param id
	 * @param message
	 * @return: void
	 * @throws
	 */
	public RocketMqInfo saveRocketMQInfo(String topic, String tag, String key, String body, Integer type, String msgId, Integer queueId, String bornHost, String storeHost);
	
	/**
	 * 同步发送
	 * 
	 * @Title: doSendSyncMsg
	 * @author: wuyicheng
	 * @date: 2016年11月18日下午2:25:49
	 * @Description: TODO
	 * @param producerGroup
	 *            生产组
	 * @param instanceName
	 *            实例名
	 * @param topicName
	 *            主题
	 * @param tagName
	 *            次标题
	 * @param key
	 *            唯一标识
	 * @param json
	 *            发送的消息内容
	 * @return String 成功标志 SEND_OK
	 * @throws
	 */
	public String doSendSyncMsg(String producerGroup, String instanceName, String topicName, String tagName, String key, String json);
	
	/**
	 * 消息重新发送
	 * 
	 * @Title: doReSendMsg
	 * @author: xujinding
	 * @date: 2017年6月8日下午2:21:28
	 * @Description:
	 * @return: void
	 * @throws
	 */
	public void doReSendMsg();
	
	/**
	 * 消息消费
	 * 
	 * @Title: doOrderlyConsumer
	 * @author: xujinding
	 * @date: 2017年6月8日下午2:21:28
	 * @Description:
	 * @return: void
	 * @throws
	 */
	public void doOrderlyConsumer(String consumerGroup, String instanceName, String topicName, String tagName, MessageModel model);
	
}
